package kotlincore.chapt02.高阶函数和Lambda.方法和成员引用

import kotlincore.chapt02.高阶函数和Lambda.实例函数作为参数的需求.CountryTest

class test {
}
class Book(val name:String)
fun main() {

    //Kotlin存在一种特殊的语法，通过两个冒号来实现对某个类的方法进行引用。
    val contryTest= CountryTest()
    contryTest::isBigEuropeanCountry

    //通过这种语法，来定义一个类的构造方法引用变量
    val getBook = ::Book
    println(getBook("Dive into Kotlin").name)

    //可以发现getBook的类型为(name:String)->Book。
    //类似的道理，如果我们要引用某个类中的成员变量，如Book类中的name，就可以这们引用:
    val book = Book::name
    //以上创建的Book::name的类型为(Book)->String.

    val bookNames = listOf(
        Book("Thinking in Java"),
        Book("Dive int Kotlin")
    ).map(Book::name)

    println(bookNames)
}

